package pso.run;

import pso.Evaluator;
import pso.Swarm;
import solution.InputData;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) 
	{
		int[][] x = {{54, 83, 15, 71, 77, 36, 53, 38, 27, 87, 76, 91, 14, 29, 12, 77, 32, 87, 68, 94},
					{79,  3, 11, 99, 56, 70, 99, 60,  5, 56,  3, 61, 73, 75, 47, 14, 21, 86,  5, 77},
					{16, 89, 49, 15, 89, 45, 60, 23, 57, 64,  7,  1, 63, 41, 63, 47, 26, 75, 77, 40},
					{66, 58, 31, 68, 78, 91, 13, 59, 49, 85, 85,  9, 39, 41, 56, 40, 54, 77, 51, 31},
					{58, 56, 20, 85, 53, 35, 53, 41, 69, 13, 86, 72,  8, 49, 47, 87, 58, 18, 68, 28}};
		/* machines/times */
		//System.out.println(x[4][19]);
		//InputData idat = new InputData(5, 20, x);
		//Printer.print(idat.data_);
		
		
		Swarm s = new Swarm(20, 10, new Evaluator(new InputData(5, 20, x)));
		/*liczba zadań, liczba cząsteczek, obiekt obliczajacy czas rozwiazania*/
		
		s.setInertiaWeight(1.0);
		s.setCognitionLearmningFactor(1.0);
		s.setSocialLearningFactor(1.0);
		s.setMaxVelocity(4.0);
		/*waga bezwładości, współczynnik poznawczy, współczynnik społeczny, górne ograniczenie prrędkości*/
		
		int[] res = s.seekSolution(10);	/*liczba iteracji*/
		
		System.out.println("Rozwiązanie:");
		for(int y = 0; y<res.length; y++)
			System.out.println("Zadanie numer " + y + ": " + res[y]);
	}

}